package com.um.springboot.starter.utils;

/**
 * @author 邓南辉
 * 日期 2022/7/12
 * 版权所有 广州优匠科技有限公司
 */
public class NumberUtil {

    /**
     * double转整数
     *
     * @param value
     * @param decimalCount 小数个数
     * @return
     */
    public static int doubleToInteger(double value, int decimalCount) {
        return decimalCount < 1
                ? cn.hutool.core.util.NumberUtil.toBigInteger(value).intValue()
                : cn.hutool.core.util.NumberUtil.mul(value, cn.hutool.core.util.NumberUtil.pow(10, decimalCount)).intValue();
    }

    /**
     * double转长整数
     *
     * @param value
     * @param decimalCount 小数个数
     * @return
     */
    public static long doubleToLong(double value, int decimalCount) {
        return decimalCount < 1
                ? cn.hutool.core.util.NumberUtil.toBigInteger(value).longValue()
                : cn.hutool.core.util.NumberUtil.mul(value, cn.hutool.core.util.NumberUtil.pow(10, decimalCount)).longValue();
    }

    /**
     * 整数转double
     *
     * @param value
     * @param decimalCount 小数个数
     * @return
     */
    public static double integerToDouble(int value, int decimalCount) {
        return decimalCount < 1
                ? cn.hutool.core.util.NumberUtil.toDouble(value)
                : cn.hutool.core.util.NumberUtil.mul(value, cn.hutool.core.util.NumberUtil.pow(0.1, decimalCount)).doubleValue();
    }

    /**
     * 长整数转double
     *
     * @param value
     * @param decimalCount 小数个数
     * @return
     */
    public static double longToDouble(long value, int decimalCount) {
        return decimalCount < 1
                ? cn.hutool.core.util.NumberUtil.toDouble(value)
                : cn.hutool.core.util.NumberUtil.mul(value, cn.hutool.core.util.NumberUtil.pow(0.1, decimalCount)).doubleValue();
    }
}
